using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Srvtools;

namespace cPpoPr2
{
    public partial class Form1 : InfoForm
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void infoDataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
        ////////////
        public string GetToday()
        {
            return string.Format("{0:yyyyMMdd}", DateTime.Today);
        }

        public string GetNowTime()
        {
            return string.Format("{0:hhmmss}", DateTime.Now);
        }

        public string GetUser()
        {
            return CliUtils.fLoginUser;
        }
        /////////////

        private void ibsMaster_BeforeEdit(object sender, EventArgs e)
        {                              
            //dateTime顯示
            infoTextBox6.Text = DateTime.Now.ToLongTimeString();
                     
        }

        private void ibsMaster_CurrentChanged(object sender, EventArgs e)
        {          
           string state = infoNavigator1.GetCurrentState();
           if (state == "Inserting" || state == "Editing" || state == "Initial" || state == "Browsed")
           {
               //修改時間顯示
               string UPDATE_TIME = ((DataRowView)ibsMaster.Current)["UPDATE_TIME"].ToString();
               if (UPDATE_TIME.Length == 6)
                infoTextBox6.Text = Convert.ToDateTime(UPDATE_TIME.Substring(0, 2) + ":" + UPDATE_TIME.Substring(2, 2) + ":" + UPDATE_TIME.Substring(4, 2)).ToLongTimeString(); 
               else if (UPDATE_TIME.Length == 0)
                   infoTextBox6.Text = "";

               //建檔時間顯示
               string CREATE_TIME = ((DataRowView)ibsMaster.Current)["CREATE_TIME"].ToString();
               if (CREATE_TIME.Length == 6)
                infoTextBox1.Text = Convert.ToDateTime(CREATE_TIME.Substring(0, 2) + ":" + CREATE_TIME.Substring(2, 2) + ":" + CREATE_TIME.Substring(4, 2)).ToLongTimeString(); 
               else if (CREATE_TIME.Length == 0)
                   infoTextBox1.Text = "";
           }
        }

        private void InfoComboBox0_TextChanged(object sender, EventArgs e)
        {
            ////如果為一般性選購單,不可變更INQ,案源性質,客戶編號,業務員
            //if (InfoComboBox0.Text == "一般請購單" || InfoComboBox0.Text == "1")
            //{

            //    InfoRefValBox02.Enabled = false;
            //    InfoComboBox01.Enabled = false;
            //    InfoRefValBox03.Enabled = false;
            //    InfoRefValBox01.Enabled = false;
            //    this.nOITEMDataGridViewTextBoxColumn.ReadOnly = true;
            //    this.nOITEMDataGridViewTextBoxColumn.DefaultCellStyle.BackColor = System.Drawing.Color.LightGray;

            //}
            //else if (InfoComboBox0.Text == "計劃性請購單" || InfoComboBox0.Text == "2")
            //{

            //    InfoRefValBox02.Enabled = true;
            //    InfoComboBox01.Enabled = true;
            //    InfoRefValBox03.Enabled = true;
            //    InfoRefValBox01.Enabled = true;

            //    infoDataGridView1.AllowUserToAddRows = true;
            //    this.nOITEMDataGridViewTextBoxColumn.ReadOnly = false;
            //    this.nOITEMDataGridViewTextBoxColumn.DefaultCellStyle.BackColor = System.Drawing.Color.White;
            //}
        }

        private void ibsMaster_AddingNew(object sender, AddingNewEventArgs e)
        {
            //在新增就顯示建檔時間   
            infoTextBox1.Text = DateTime.Now.ToLongTimeString();

            //一般請購單,設定條件,在新增時
            if (InfoComboBox0.Text == "一般請購單")
            {
                

                InfoRefValBox02.Enabled = false;
                InfoComboBox01.Enabled = false;
                InfoRefValBox03.Enabled = false;
                InfoRefValBox01.Enabled = false;
             
                
            }
        }        

        private void infoDataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
             
            if ((infoNavigator1.GetCurrentState() == "Inserting") || (infoNavigator1.GetCurrentState() == "Editing"))
            {
                float AM_AMT = 0;
                string Qty = infoDataGridView1.Columns[e.ColumnIndex].DataPropertyName.ToString();
                if (Qty == "QT_QTY")  
                    {                       
                        //計算實售金額＝數量*售價
                        AM_AMT = float.Parse(((DataRowView)ibsDetail.Current)["PR_SALES"].ToString());
                        AM_AMT = AM_AMT * float.Parse(((DataRowView)ibsDetail.Current)["QT_QTY"].ToString());
                        ((DataRowView)ibsDetail.Current)["AM_SALES"] = AM_AMT.ToString();
                        ibsDetail.EndEdit();
                    }
                
            }
        }

        public bool CheckDetail(string value)
        {
            //使用DefaultVaildate的Vaildate屬性,檢查明細是否空白
            if (ibsDetail.List.Count == 0)
             return false; 
            else
             return true; 

        }

        private void bindingNavigatorEditItem_Click(object sender, EventArgs e)
        {
            //以string儲存,在按下修改時
            ((DataRowView)ibsMaster.Current)["UPDATE_USER"] = CliUtils.fLoginUser;
            ((DataRowView)ibsMaster.Current)["UPDATE_DATE"] = string.Format("{0:yyyyMMdd}", DateTime.Now.Date);
            ((DataRowView)ibsMaster.Current)["UPDATE_TIME"] = string.Format("{0:hhmmss}", DateTime.Now);

        }

        private void ibsMaster_AfterEdit(object sender, EventArgs e)
        {
            //以string儲存
            ((DataRowView)ibsMaster.Current)["UPDATE_USER"] = CliUtils.fLoginUser;
            ((DataRowView)ibsMaster.Current)["UPDATE_DATE"] = string.Format("{0:yyyyMMdd}", DateTime.Now.Date);
            ((DataRowView)ibsMaster.Current)["UPDATE_TIME"] = string.Format("{0:hhmmss}", DateTime.Now);
        }

        private void infoDataGridView2_Click(object sender, EventArgs e)
        {
            //重新設定明細欄位的ReadOnly屬性(因為使用AutoDisableControl會造成回歸預設值False)  
            this.infoDataGridView2.ReadOnly = true;
        }

        private void infoDataGridView1_Click(object sender, EventArgs e)
        {
            //重新設定明細欄位的ReadOnly屬性(因為使用AutoDisableControl會造成回歸預設值False) 
            this.nOPRDataGridViewTextBoxColumn1.ReadOnly = true;
            this.CN_SEQ2.ReadOnly = true;
            this.nMITEMDataGridViewTextBoxColumn.ReadOnly = true;
            this.cDIMUMDataGridViewTextBoxColumn.ReadOnly = true;
            this.pRSALESDataGridViewTextBoxColumn.ReadOnly = true;
            this.aMSALESDataGridViewTextBoxColumn.ReadOnly = true;       
            this.qTPOENDDataGridViewTextBoxColumn.ReadOnly = true;
            this.FG_COUNT.ReadOnly = true;
            this.fGCLOSEDataGridViewTextBoxColumn.ReadOnly = true;
            this.ID_PUR.ReadOnly = true;           
        }

        private void infoNavigator1_StateChanged(object sender, InfoNavigatorStateChangedEventArgs e)
        {
            ////如果為一般性選購單,不可變更INQ,案源性質,客戶編號,業務員
            //if (InfoComboBox0.Text == "一般請購單" || InfoComboBox0.Text == "1")
            //{
                
            //    InfoRefValBox02.Enabled = false;
            //    InfoComboBox01.Enabled = false;
            //    InfoRefValBox03.Enabled = false;
            //    InfoRefValBox01.Enabled = false;
            //    this.nOITEMDataGridViewTextBoxColumn.ReadOnly = true;
            //    this.nOITEMDataGridViewTextBoxColumn.DefaultCellStyle.BackColor = System.Drawing.Color.LightGray;
            //}
            //else if (InfoComboBox0.Text == "計劃性請購單" || InfoComboBox0.Text == "2")
            //{
              
            //    InfoRefValBox02.Enabled = true;
            //    InfoComboBox01.Enabled = true;
            //    InfoRefValBox03.Enabled = true;
            //    InfoRefValBox01.Enabled = true;               
            //    infoDataGridView1.AllowUserToAddRows = true;
            //    this.nOITEMDataGridViewTextBoxColumn.ReadOnly=false;
            //    this.nOITEMDataGridViewTextBoxColumn.DefaultCellStyle.BackColor = System.Drawing.Color.White;            
                
            //}

            //將DateTimePicker設為不可改
            this.InfoDateTimePicker01.Enabled = false;
            this.InfoDateTimePicker1.Enabled = false;
            //請購類別不給改
            this.InfoComboBox0.Enabled = false;

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //隱藏鍵值欄位            
            this.nOPRDataGridViewTextBoxColumn1.Visible = false;
        }

        private void ibsDetail_BeforeEdit(object sender, EventArgs e)
        {
            //記錄Detail的修改時間日期
            ((DataRowView)ibsDetail.Current)["UPDATE_USER"] = CliUtils.fLoginUser;
            ((DataRowView)ibsDetail.Current)["UPDATE_DATE"] = string.Format("{0:yyyyMMdd}", DateTime.Now.Date);
            ((DataRowView)ibsDetail.Current)["UPDATE_TIME"] = string.Format("{0:hhmmss}", DateTime.Now);
        }

        private void infoDataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
        {
            //重算總金額
            InfoTextBox03.Text = infoDataGridView1.DoSum(8, totalMode.sum);
        }

        private void bindingNavigatorAddNewItem_MouseUp(object sender, MouseEventArgs e)
        {
            //將DateTimePicker設為不可改
            this.InfoDateTimePicker01.Enabled = false;
            this.InfoDateTimePicker1.Enabled = false;
            //請購類別不給改
            this.InfoComboBox0.Enabled = false;
        }

        private void infoDataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
        {
            //重算總金額
            InfoTextBox03.Text = infoDataGridView1.DoSum(8, totalMode.sum);
        }
    }
    
}

